package main

import (
	"fmt"
	"inkjet168x-sdk-go/sdk"
	"inkjet168x-sdk-go/sdk/protocol/barcode"
)

func main() {
	fmt.Println("=== 条码SDK简单使用示例 ===\n")
	
	// 创建条码SDK实例
	barcodeSDK := sdk.NewBarcodeSDK()
	
	// 示例1: 二维码
	fmt.Println("示例1: 生成二维码协议")
	protocol1 := barcodeSDK.NewBarcodeProtocol()
	protocol1.SetText("88888")
	protocol1.SetPosition(0, 0)
	protocol1.SetBarcodeType(barcode.TypeQRCode)
	protocol1.SetSize(150, 150)
	protocol1.SetTextDisplay(false)
	protocol1.SetTextHeight(60)
	protocol1.SetSequence(0)
	
	data1, err := barcodeSDK.CreateBarcodeProtocol(protocol1)
	if err != nil {
		fmt.Printf("错误: %v\n", err)
		return
	}
	
	fmt.Printf("二维码协议数据包 (%d 字节): ", len(data1))
	for i := 0; i < len(data1); i++ {
		fmt.Printf("%02X ", data1[i])
	}
	
	// 示例2: CODE128条码
	fmt.Println("\n示例2: 生成CODE128条码协议")
	protocol2 := barcodeSDK.NewBarcodeProtocol()
	protocol2.SetText("123456789")
	protocol2.SetPosition(0, 0)
	protocol2.SetBarcodeType(barcode.TypeCODE128)
	protocol2.SetSize(150, 150)
	protocol2.SetTextDisplay(false)
	protocol2.SetTextHeight(32)
	protocol2.SetSequence(1)
	
	data2, err := barcodeSDK.CreateBarcodeProtocol(protocol2)
	if err != nil {
		fmt.Printf("错误: %v\n", err)
		return
	}
	
	fmt.Printf("CODE128协议数据包 (%d 字节): ", len(data2))
	for i := 0; i < len(data2); i++ {
		fmt.Printf("%02X ", data2[i])
	}
	fmt.Println("...")
	
	fmt.Println("\n=== 使用总结 ===")
	fmt.Println("条码SDK使用步骤:")
	fmt.Println("1. 创建SDK: barcodeSDK := sdk.NewBarcodeSDK()")
	fmt.Println("2. 创建协议: protocol := barcodeSDK.NewBarcodeProtocol()")
	fmt.Println("3. 配置参数: protocol.SetText(...), protocol.SetPosition(...), 等")
	fmt.Println("4. 生成数据: data, err := barcodeSDK.CreateBarcodeProtocol(protocol)")
	fmt.Println("\n与文本SDK使用方式完全一致！")
}